package com.app.service;

import com.app.model.AdminUserModel;
import com.app.model.ComplaintModel;
import com.app.model.UserModel;
import com.app.vo.ComplainVo;

import java.util.List;

public interface ComplaintService {
    String addComplaint(ComplaintModel model);

    List<ComplaintModel> complaintList(Integer userId);

    ComplaintModel selectSchedule(String code);

    ComplaintModel selectSchedule(String code, Integer adminId);

    ComplaintModel selectDetail(Integer id);

    ComplaintModel selectDetail(Integer id, Integer adminId);

    void deleteComplaintList(Integer id);

    String updateComplaintCircleStatus(Integer id, Integer circleStatus,String url);

    String updateReclassifyIndustry(Integer id, Integer industryId);

    void examineComplaint(Integer id, Integer status, String remark, String handleRemark, String rejectRemark, AdminUserModel user);

    ComplainVo selectComplaintList(Integer page, Integer limit, String keyword, String selectCrtTime, AdminUserModel user, Integer clue, Integer status, Integer examine, Integer warningStatus);

    ComplainVo getComplaintList(Integer page, Integer limit, String keyword, String selectCrtTime, String isJiuquan, Integer clue, Integer status, Integer examine, Integer warningStatus);

    Integer selectNoGreenLightCount(AdminUserModel userModel);

    ComplainVo selectNoGreenLightList(Integer page, Integer limit, AdminUserModel userModel);

    List<UserModel> whiteList();

    List<ComplaintModel> examineComplaintList(Integer status, Integer examine);

    List<ComplaintModel> examineComplaintList(Integer status, Integer adminId, Integer examine);

    Object selectHandle(Integer id);

    List<ComplaintModel> selectByUserId(Integer id);

    int selectAllCount(AdminUserModel user);

    int selectStatusCount(AdminUserModel user);

    int selectByType(Integer type, Integer adminId, Integer roles);

    int selectByStatus(Integer status, Integer adminId, Integer roles);

    int selectIndustryCount(Integer id, Integer adminId, Integer roles);

    void examine(Integer id, Integer examine, String examineRemark);

    String updateClue(Integer id, Integer clue);

    String updateRecord(Integer id, String record);


    void pushStatus(ComplaintModel source);

    ComplaintModel getById(Integer id);

    List<ComplaintModel> selectComplaintExports(String keyWord, String selectCrtTime, Integer clue, Integer status, Integer examine, Integer warningStatus);
}
